import sys
input=lambda:sys.stdin.readline().rstrip()
N,Q=map(int,input().split())
comp=['a','b','c']
S=list(input())
ans=sum([S[i:i+3]==comp for i in range(N-2)])
for i in range(Q):
temp=0
q=input().split()
ind=int(q[0])-1
for j in range(max(ind-2,0),min(ind+1,N-2)):
ans-=(S[j:j+3]==comp)
S[ind]=q[1]
for j in range(max(ind-2,0),min(ind+1,N-2)):
ans+=(S[j:j+3]==comp)
print(ans)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,q;
cin>>n>>q;
string s="";
cin>>s;int ans=0;
if(s.size()>2){
for(int i=1;i<n-1;i++){
if(s[i]=='b'&&s[i-1]=='a'&&s[i+1]=='c'){
ans++;
}
}
}
while(q--){
int pos;char sc;
cin>>pos>>sc;
if(s[pos-1]!=sc){
if(pos-2>=0&&pos<n&&s[pos-1]=='b'&&s[pos-1-1]=='a'&&s[pos-1+1]=='c'){
ans--;
}else if(pos-1>=0&&pos+1<n&&s[pos-1]=='a'&&s[pos]=='b'&&s[pos+1]=='c'){
ans--;
}else if(pos-3>=0&&pos-1<n&&s[pos-1]=='c'&&s[pos-1-1]=='b'&&s[pos-3]=='a'){
ans--;
}
if(pos>=0&&pos+1<n&&sc=='a'&&s[pos]=='b'&&s[pos+1]=='c'){
ans++;
}else if(pos-2>=0&&pos<n&&sc=='b'&&s[pos-1-1]=='a'&&s[pos]=='c'){
ans++;
}else if(pos-3>=0&&pos-2<n&&sc=='c'&&s[pos-2]=='b'&&s[pos-3]=='a'){
ans++;
}
s[pos-1]=sc;
}
cout<<ans<<endl;
}
// another approach not came into my mind
}
1002. Find Common Characters | 1602A - Two Subsequences |
1555A - PizzaForces | 1607B - Odd Grasshopper |
1084A - The Fair Nut and Elevator | 1440B - Sum of Medians |
1032A - Kitchen Utensils | 1501B - Napoleon Cake |
1584B - Coloring Rectangles | 1562B - Scenes From a Memory |
1521A - Nastia and Nearly Good Numbers | 208. Implement Trie |
1605B - Reverse Sort | 1607C - Minimum Extraction |
1604B - XOR Specia-LIS-t | 1606B - Update Files |
1598B - Groups | 1602B - Divine Array |
1594B - Special Numbers | 1614A - Divan and a Store |
2085. Count Common Words With One Occurrence | 2089. Find Target Indices After Sorting Array |
2090. K Radius Subarray Averages | 2091. Removing Minimum and Maximum From Array |
6. Zigzag Conversion | 1612B - Special Permutation |
1481. Least Number of Unique Integers after K Removals | 1035. Uncrossed Lines |
328. Odd Even Linked List | 1219. Path with Maximum Gold |